#pragma once
#include "Zone.h"
//#include "Drawable.hpp"		(Abstracted through Zone.h)
//#include "Pathogen.h"			(Abstracted through Zone.h)
//#include "Manifestation.h"	(Abstracted through Pathogen.h)
//#include "Global.h"			(Abstracted through multiple)
//#include <vector.h>			(Abstracted through Global.h)
//using namespace std;			(Abstracted through Global.h)

//Rules:
//A MenuPanel is merely a display of text with places for buttons to appear.
//It only appears durring its showstate

class MenuPanel : public Drawable
{
protected:
	int				RelatedID;			//Used for specialized Menus
	int				m_eiShowCondition;	//What state the game has to be in for the object to show up.
	bool			m_bisActive;		//For the case of zone menus
	RECT			TextLocation;	
	string			m_sContent;			//Text displayed in the menubox.
	string			m_sMenuName;		//What text should be written on the button
public:
	//=====CONSTRUCTORS
	MenuPanel();
	MenuPanel(float,float,float,float,int,int,string);
	//=====INITIALIZE
	void Initialize(LPDIRECT3DTEXTURE9);
	//=====UPDATE
	void Update();
	//=====ACCESSORS
	bool   isActive();		//Returns true if the panel should show
	int    ShowReq()		{return m_eiShowCondition;};
	int    MenuTypeID()		{return RelatedID;		  };
	RECT   RectGetRect()	{return TextLocation;     };	
	string sGetContent()	{return m_sContent;       };
	//=======MUTATORS
	void SetState(bool X)	{m_bisActive = X;		  }; //Activate the menu
	void UpdateTextFor(Zone*);
	void ModifyContent(string);
};
typedef vector<MenuPanel*> L_Menu;


